5.1 確率と言語モデル
word2vec(CBOW)を使って言語モデルを説明し、5章で扱うRNNを導入する
コーパスとしてT個の単語列:w1, w2, ..., wT
CBOWモデルはコンテキスト(例:w(t-1), w(t+1))からターゲットの単語wtを推測する
事後確率 P(wt | w(t-1), w(t+1))
w(t-1)とw(t+1)が与えられたとき、wtが起こる確率 (p.176)
コンテキストを左のウィンドウだけとする:P(wt | w(t-2), w(t-1))
損失関数は -log P(wt | w(t-2), w(t-1)) (コーパス全体での総和)
できる限り小さくする = コンテキストからターゲットを正しく推測できる
学習の副産物として、単語の分散表現
コンテキストからターゲットを推測することは利用できる:言語モデル
どれだけ自然な単語の並びか(=単語の並びがどれだけ起こりえるのか)
文章生成
言語モデル(Language Model)は、単語の並びに対して確率を与えます。 (p.178)
m個の単語 w1, ..., wm からなる文章は、同時確率 P(w1, ..., wm) で表される
同時確率は事後確率の総乗
P(w1, ..., wm) = P(wm | w1, ..., w(m-1)) P(w(m-1) | w1, ..., w(m-2)) ... P(w2 | w1) P(w1)
対象の単語の左側のすべてをコンテキストとしている
CBOWモデルはコンテキストのサイズを限定
CBOWモデルの事後確率で言語モデルの同時確率 P(w1, ..., wm) を近似できる
例:コンテキストは左側の2単語(=2階マルコフ連鎖)
continuous bag-of-wordsなので、単語の並びは無視される(袋に入れるから並びを区別できない)
例:you sayとsay youは同じ
CBOWモデルの中間層では単語ベクトルの和が求められるため、コンテキストの単語の並び方は無視されます。(p.182)
コンテキストの単語の並びも考慮したい!
中間層の連結も考えられた(が、パラメタが増加してしまう)
RNNへ(次節)